package com.fiap.solutions.dao.Impl;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;

import com.fiap.solutions.dao.PedidoDAO;
import com.fiap.solutions.entity.Pedido;

public class PedidoDAOImpl extends DAOImpl<Pedido, Integer> implements PedidoDAO{

	public PedidoDAOImpl(EntityManager entityManager) {
		super(entityManager);
	}

	@Override
	public List<Pedido> buscaPedidosPorCliente(int codigo) {
			TypedQuery<Pedido> query = em.createQuery("FROM Pedido p where p.cliente.codigo =:codigo",Pedido.class);
			query.setParameter("codigo", codigo);
			
			return query.getResultList();
	}
	
	public List<Pedido> buscaPedidosPorData(Date dataIni, Date dataFim) {
		TypedQuery<Pedido> query;
		
		if(dataIni == null && dataFim == null){
			query = em.createQuery("FROM Pedido p where p.dataEntrega =:data",Pedido.class);
			
			query.setParameter("data", new Date());
		}else{
			query = em.createQuery("FROM Pedido p where p.dataEntrega between :dataInicio and :dataFim",Pedido.class);
			
			query.setParameter("dataInicio", dataIni);
			query.setParameter("dataFim", dataFim);
		}
		
		
		return query.getResultList();
	}

}
